home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 2: Applications / Linux Cubed Series 2 - Applications.iso / editors / emacs / xemacs / xemacs-1.006 / xemacs-1 / lib / xemacs-19.13 / lisp / ilisp / ilisp-cmu.el < prev    next >
Encoding:
Text File  |  1995-01-26  |  2.5 KB  |  87 lines

  1. ;;; -*- Mode: Emacs-Lisp -*-
  2.  
  3. ;;; ilisp-cmu.el --
  4.  
  5. ;;; This file is part of ILISP.
  6. ;;; Version: 5.7
  7. ;;;
  8. ;;; Copyright (C) 1990, 1991, 1992, 1993 Chris McConnell
  9. ;;;               1993, 1994 Ivan Vasquez
  10. ;;;               1994, 1995 Marco Antoniotti and Rick Busdiecker
  11. ;;;
  12. ;;; Other authors' names for which this Copyright notice also holds
  13. ;;; may appear later in this file.
  14. ;;;
  15. ;;; Send mail to 'ilisp-request@lehman.com' to be included in the
  16. ;;; ILISP mailing list. 'ilisp@lehman.com' is the general ILISP
  17. ;;; mailing list were bugs and improvements are discussed.
  18. ;;;
  19. ;;; ILISP is freely redistributable under the terms found in the file
  20. ;;; COPYING.
  21.  
  22.  
  23. ;;;
  24. ;;; ILISP CMU Common Lisp dialect definition
  25. ;;;
  26. ;;;%%%CMULisp
  27.  
  28. (defvar cmulisp-source-directory-regexp 
  29.   "\\/afs\\/cs\\.cmu\\.edu\\/project\\/clisp\\/src\\/[0-9]*\\/"
  30.   "*Regexp to match cmulisp source code directory.")
  31.  
  32. (defvar cmulisp-local-source-directory
  33.   nil
  34.   "*Where the cmulisp sources really are.")
  35.  
  36. (defvar ilisp-cmulisp-init-file "cmulisp.lisp")
  37.  
  38. (defun cmulisp-source-directory-fixup-function ()
  39.   (if cmulisp-local-source-directory
  40.       (replace-match cmulisp-local-source-directory)))
  41.  
  42. (defun cmulisp-check-prompt (old new)
  43.   "Compare the break level printed at the beginning of the prompt."
  44.   (let* ((was-in-break (and old (string-match "]+" old)))
  45.       (old-level (if was-in-break
  46.              (- (match-end 0) (match-beginning 0))
  47.              0))
  48.       (is-in-break (string-match "]+" new))
  49.       (new-level (if is-in-break
  50.              (- (match-end 0) (match-beginning 0))
  51.              0)))
  52.     (<= new-level old-level)))
  53.  
  54. ;;;
  55. (defdialect cmulisp "CMU Common LISP"
  56.   clisp
  57.   (ilisp-load-init 'cmu ilisp-cmulisp-init-file)
  58.   (if cmulisp-local-source-directory
  59.       (setq ilisp-source-directory-fixup-alist
  60.         (list 
  61.          (cons cmulisp-source-directory-regexp
  62.            cmulisp-local-source-directory)))
  63.     (message "cmulisp-local-source-directory not set."))
  64.   (setq comint-prompt-regexp "^\\([0-9]+\\]+\\|\\*\\) "
  65.     ilisp-trace-command "(ILISP:cmulisp-trace \"%s\" \"%s\" \"%s\")"
  66.     comint-prompt-status 
  67.     (function (lambda (old line)
  68.       (comint-prompt-status old line 'cmulisp-check-prompt)))
  69.  
  70.     ilisp-error-regexp "ILISP:[^\"]*\\|Error [^\n]*\n\n"
  71.     ;; The above regexp has been suggested by
  72.     ;; hunter@work.nlm.nih.gov (Larry Hunter)
  73.  
  74.     ilisp-arglist-command "(ILISP:arglist \"%s\" \"%s\")"
  75.  
  76.     ilisp-find-source-command "(ILISP:source-file \"%s\" \"%s\" \"%s\")"
  77.  
  78.     comint-fix-error ":pop"
  79.  
  80.     comint-continue ":go"
  81.  
  82.     ilisp-reset ":q"
  83.  
  84.     comint-interrupt-regexp "Interrupted at"
  85.  
  86.     ilisp-binary-extension "sparcf"))
  87.